草庐IT

C++ 优化

全部标签

C# GUI 在 C 硬计算引擎之上

前段时间,我用C#开发了一个数学绘图仪,它通过旧的、“愚蠢的”数值计算在各种几何空间中绘制函数。用户只需插入一个经过简化和半编译的n变量方程或曲线,然后计算域中变量值的整组组合,然后显示。我正在对算法进行优化以减少计算量,但据我所知,对于我必须处理的问题,没有办法进行至少5*10^7次操作,至少功能强大机器和C#机器代码导致1-1.5秒的延迟,这是NotAcceptable,至少因为在C中实现的相同代码快20倍(而且这只是未优化的版本!)。所以我想做的是修改我的应用程序,保留80%的旧C#“慢”代码,包括GUI,因此将计算和渲染部分留给“快”C。“慢”部分必须将字符串和一些int参数传

windows - 如何在 x64 VC++ 编译器上禁用 FPO 优化

最近我开始使用Windbg(x64),为了玩它,我编译了(x64)一个示例程序使用cl.exels.c/Zi/Od/GS-有趣的是,为可执行文件生成的函数包含FPO优化。下面是一个例程的反汇编片段。0:000>ufls!GetDateStringls!GetDateString:00007ff7`459a6d00movqwordptr[rsp+8],rcx00007ff7`459a6d05subrsp,88h00007ff7`459a6d0cmovqwordptr[rsp+58h],000007ff7`459a6d15movqwordptr[rsp+50h],000007ff7`459

c++ - 使 Stack Walker 在启用优化的应用程序中工作

我指的是http://www.wintoolzone.com/articles/AuthoringStackWalkerForX86.pdf上的文章我正在使用VC++2008。我意识到当我将优化设置为“最大速度(/O2)”时,即使我将“省略帧指针”显式设置为否,获取函数返回的地址也无法通过堆栈正常工作帧指针。文章中提到:"Requiresstackframepointertobepresentintheproducedcode.Optimizedcodewherestackframepointerisabsentwillnotbewalkedbythiscode.Itsleftasan

c++ - 在优化校准中绘制图像

我有一个名为IDC_PICTURECONTROL的图片控件,还有一个名为lpPicutre的LPPICTURE。当我的窗口接收到WM_PAINT时,我调用我的函数drawPicture(HWND,LPPICTURE)如下:drawPicture(GetDlgItem(hDlg,IDC_PICTURECONTROL),lpPicture);现在这样写,控件周围的黑色边框就消失了,根本没有绘制图片。如果我编辑该函数,使其不绘制到图片控件,而是绘制到对话框本身(hDlg),则它会正确地绘制在窗口客户区的背景上。(不是我想要的)。这是绘画函数中的代码:voiddrawPicture(HWNDh

windows - 如何将 Windows 上的 Rails/Rspec 加载时间优化到秒级? (带或不带叉)

背景:我正在使用EngineYard的RailsInstaller2包,这意味着Ruby1.9.2-p290和Rails3.1.1,在Windows7x64上。问题:在尝试RubyonRailsTutorial时在自动测试和spork按预期工作后,很明显,虽然rspec报告测试在几秒钟内完成,但实际消耗的时间远大于此,接近半分钟,与瞬间相去甚远在截屏视频中观察到的响应。我知道其中大部分可以归因于Rails加载时间(从spork在预加载阶段花费的时间量也可以看出),以及JRuby是如何变慢的(与Linux上的Ruby相比),但每个rspec15+s平均运行(有或没有spork,考虑到加载

windows - 管理员模式与非管理员模式 - 无法覆盖变量,因为变量已被优化

在今天的一些测试中,我遇到了一个意想不到的问题,我不明白为什么会这样。下面是我用来复制问题的代码。这只是更大项目的一小部分。如果有帮助,正在对Windows10Build1709进行测试PS1文件和BAT文件同名导致错误的方法通过右键单击-使用PowerShell运行运行PS1文件会导致错误在非管理员模式下打开PowerShellISE,然后打开/运行脚本会导致错误以管理员或非管理员身份运行BAT文件将导致错误避免错误的方法在管理员模式下打开PowerShellISE,然后打开/运行脚本不会导致错误在最后两行代码的变量前添加Script:,无论脚本如何执行,都不会报错使用VSCode,

优化算法综述

目录优化算法综述数学规划法精确算法(exactalgorithm)启发式VS.元启发式启发式算法元启发式算法Whatisthedifferencebetweenheuristicsandmeta-heuristics?多目标智能优化算法模拟进化算法与传统的精确算法(确定性算法)的区别优化算法分类算法介绍帝国竞争算法(ImperialistCompetitiveAlgorithm,ICA)分支定界法(BranchandBound,BB)NSGA-Ⅱ算法遗传算法(GeneticAlgorithm,GA)禁忌搜索算法(TabuSearch,TS)文化基因算法(MemeticAlgorithm,MA)

c# - 与 C#/WinForms 中高度优化的 GDI 代码相比,SharpDX 能带来多少改进?

几年来,我一直在开发C#/GDI图形应用程序。我花了很多时间优化绘图代码。我通过每秒大约10次使PictureBox控件无效并利用Windows触发它时发生的后续OnPaint事件来绘制到屏幕。OnPaint事件使我可以通过PaintEventArgs参数访问Graphics对象。每帧:我画了数百条线,数百个矩形,我也调用了数百次Graphics.DrawString()方法。我开始整理一个SharpDX项目,希望我可以绘制更多2D元素,并更快地绘制到屏幕上。我设置了2个测试项目,使用GDI和SharpDX在屏幕上绘制相同的2D元素。我使用C#StopWatch对象来检测绘制所有2D元

c++ - 如何优化 std::map insert() 函数?

解释我正在尝试的最好方法是使用这个示例(使用VisualStudio2008SP1编译):structELEMENT1{//ItsmembersELEMENT1(){//Constructorcode}~ELEMENT1(){//Destructorcode}};std::mapmap;std::pair::iterator,bool>resIns;ELEMENT1element;std::wstringstrKey;for(size_ti=0;i(strKey,element));//ThislinecallsELEMENT1constructor&destructortwice//

c++ - 如何使用 assert(..) 函数避免 CRT 对话框

在Windows中有没有一种方法可以避免使用assert(..)函数失败时出现CRT对话框?我喜欢将错误消息打印到控制台。如果我们不在优化版本中定义NDEBUG来实现此目的,是否可以使用CrtReportMode(..)?-卡特里 最佳答案 您可以使用_CrtSetReportMode和_CrtSetReportFile将输出发送到文件(在本例中为stderr)。_CrtSetReportMode(_CRT_ASSERT,_CRTDBG_MODE_FILE)_CrtSetReportFile(_CRT_ASSERT,_CRTDBG_